/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Personagem;


import cenario.Lugar;
import java.util.ArrayList;
import java.util.List;
import recurso.Equipamento;
import recurso.Recurso;

/**
 *
 * @author Fernando Lima
 */
public class Mensageiro extends Personagem {

    private Lugar posicaoAtual;
    private int indice;
    private Equipamento cantil;
    private List<Recurso> itens;

    public Mensageiro(String nome, String descricao, int defesa) {

        super(nome, descricao, defesa);
        super.setVida(100);
        cantil = new Equipamento ("cantil");
        

        itens = new ArrayList<Recurso>(15);
        itens.add(cantil);
    }

    public void adicionaItem(Recurso x) {

        this.getItens().add(x);

    }

    public void removeItens(Recurso x) {

        this.getItens().remove(x);

    }

    public void findItens(int x) {

        this.getItens().get(x);

    }

    public Equipamento getCantil() {
        return cantil;
    }

    public void setCantil(Equipamento cantil) {
        this.cantil = cantil;
    }

    public int getIndice() {
        return indice;
    }

    public void setIndice(int indice) {
        this.indice = indice;
    }

    public Lugar getPosicaoAtual() {
        return posicaoAtual;
    }

    public void setPosicaoAtual(Lugar posicaoAtual) {
        this.posicaoAtual = posicaoAtual;
    }

    public int ganharVida(int vida) {
        if (vida >= 0) {
            if (super.getVida() <= 0) {
                morrer();
            } else {
                if (super.getVida() + vida > 100) {
                    super.setVida(100);
                } else {
                    super.setVida(getVida() + vida);
                }
            }
        }
        return super.getVida();
    }

    public int perderVida(int forca) {
        if (forca > 0) {
            if (super.getVida() > 0) {
                if (super.getVida() - forca <= 0) {
                    morrer();
                    super.setVida(0);

                } else {

                    super.setVida(super.getVida() - forca);
                }
            }
        }
        return super.getVida();
    }

    public String usarHabilidade(Lugar l) {
        perderVida(10);

        return l.getClima();
    }

    public void andar(Lugar lugar) {
        perderVida(15);
        setPosicaoAtual(lugar);
        setIndice(indice);

    }

    public void atacar(Personagem x) {
        if (x.getDefesa() > super.getAtaque()) {
            super.setStatus(false);
        } else {
            super.setStatus(true);
            perderVida(30);
        }
    }

    public void recolherRecurso(Lugar l, int pos, String tipo) {
        switch (tipo) {
            case "arma":

                getItens().add(l.findArma(pos));
                l.removeArma(l.findArma(pos));
                break;
            case "suprimento":
                getItens().add(l.findSuprimento(pos));
                l.removeSuprimento(l.findSuprimento(pos));
                break;
            case "equipamento":
                getItens().add(l.findEquipamento(pos));
                l.removeEquipamento(l.findEquipamento(pos));
                break;

        }
    }

    public String conversar(Personagem y) {
        return y.getDescricao();
    }

    public void encherCantil() {
        if (getCantil().getEquipamento() == false) {
            

        }

    }

    public boolean beber() {

        if (getCantil().getEquipamento() == true) {

            ganharVida(10);

           

            return true;

        }

        return false;


    }

    public void comer() {

        ganharVida(15);
    }

    public void dormir() {
        ganharVida(20);
    }

    /**
     * @return the itens
     */
    public List<Recurso> getItens() {
        return itens;
    }

    /**
     * @param itens the itens to set
     */
    public void setItens(List<Recurso> itens) {
        this.itens = itens;
    }
}
